#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>

int main()
{
    pid_t id = fork();
    if(id<0)
        return 1;
    if(id==0)
    {
        //子进程
        while(1)
        {
            printf("I am child...\n");
            sleep(1);
        }
    }
    else 
    {
        //父进程
        int cnt = 5;
        while(cnt)
        {
            printf("I am father,run times:%d\n",cnt--);
            sleep(1);
        }
        printf("I am father, dead:%d\n",cnt--);
        //父进程先退出，子进程还在运行
        //bash会回收掉父进程
        //不会管孙子进程
    }
    return 0;
}


//int main()
//{
//    pid_t id = fork();
//    if(id<0)
//        return 1;
//    if(id==0)
//    {
//        //子进程
//        int cnt = 5;
//        while(cnt)
//        {
//            printf("I am child,run times:%d\n",cnt--);
//            sleep(1);
//        }
//        printf("I am child, dead:%d\n",cnt--);
//        exit(2);//让一个正常的进程退出
//    }
//    else 
//    {
//        //父进程
//        while(1)
//        {
//            printf("I am father,running any time!\n");
//            sleep(1);
//        }
//        //没有回收子进程，子进程会一直为Z状态
//        //回收操作，以后学习
//    }
//    return 0;
//}
